package pattern12;

/**
 * Context类，维护一个具体的状态的实例，这个实例电话已当前的状态
 * @author wdl
 */
public class Context {
    private IState state;

    /**
     * 设置初始化状态
     * @param state 初始化状态
     */
    public Context(IState state){
        this.state=state;
    }

    /**
     * 获取当前状态
     * @return 当前状态
     */
    public IState getState() {
        return state;
    }

    /**
     * 设置新的状态
     * @param state 新状态
     */
    public void setState(IState state) {
        this.state = state;
    }

    /**
     * 对请求做处理，同时设置下一个状态
     */
    void request(){
        state.doAction(this);
    }
}
